Appearance
Docker 安装
Ubuntu 安装 Docker
主机版本
本次安装使用的 Ubuntu 版本为:Ubuntu 20.04 LTS
sh
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal
卸载旧版本 Docker
Docker 的旧版本被称为 docker、docker.io 或者 docker-engine。如果安装了这些,卸载它们:
sh
$ sudo apt remove docker docker-engine docker.io containerd runc
提示
这会保留 /var/lib/docker/ 文件中的镜像、容器、卷、网络等内容。如果您不需要保存现有数据,并且希望开始一次干净的安装,请参阅本页底部的 卸载 Docker Engine 一节。
从 Docker 存储库安装
大多数用户设置 Docker 的存储库并从中安装,以方便安装和升级任务。这是推荐的方法。
在新主机上首次安装 Docker Engine 之前,需要先设置 Docker 存储库。之后,您可以从存储库安装和更新 Docker。
设置 Docker 存储库
更新
apt
包索引和安装包,以允许apt
使用 HTTPS 存储库:sh$ sudo apt update $ sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
添加 Docker 的官方
GPG
密钥:sh$ sudo mkdir -m 0755 -p /etc/apt/keyrings $
使用以下命令设置
stable
版本的存储库:sh$ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装 Docker Engine
更新
apt
包索引,安装最新版本的 Docker Engine 和 container:sh$ sudo apt update $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装特定版本的 Docker Engine 和 container
要安装特定版本的 Docker Engine,请在 repo 中列出可用的版本,然后选择并安装:
列出您的 repo 中可用的版本:
sh$ apt-cache madison docker-ce | awk '{ print $3 }' 5:23.0.1-1~ubuntu.20.04~focal 5:23.0.0-1~ubuntu.20.04~focal 5:20.10.23~3-0~ubuntu-focal 5:20.10.22~3-0~ubuntu-focal 5:20.10.21~3-0~ubuntu-focal 5:20.10.20~3-0~ubuntu-focal 5:20.10.19~3-0~ubuntu-focal 5:20.10.18~3-0~ubuntu-focal 5:20.10.17~3-0~ubuntu-focal 5:20.10.16~3-0~ubuntu-focal 5:20.10.15~3-0~ubuntu-focal 5:20.10.14~3-0~ubuntu-focal 5:20.10.13~3-0~ubuntu-focal 5:20.10.12~3-0~ubuntu-focal 5:20.10.11~3-0~ubuntu-focal 5:20.10.10~3-0~ubuntu-focal 5:20.10.9~3-0~ubuntu-focal 5:20.10.8~3-0~ubuntu-focal 5:20.10.7~3-0~ubuntu-focal 5:20.10.6~3-0~ubuntu-focal 5:20.10.5~3-0~ubuntu-focal 5:20.10.4~3-0~ubuntu-focal 5:20.10.3~3-0~ubuntu-focal 5:20.10.2~3-0~ubuntu-focal 5:20.10.1~3-0~ubuntu-focal 5:20.10.0~3-0~ubuntu-focal 5:19.03.15~3-0~ubuntu-focal 5:19.03.14~3-0~ubuntu-focal 5:19.03.13~3-0~ubuntu-focal 5:19.03.12~3-0~ubuntu-focal 5:19.03.11~3-0~ubuntu-focal 5:19.03.10~3-0~ubuntu-focal 5:19.03.9~3-0~ubuntu-focal
选择所需的版本并安装:
sh$ VERSION_STRING=5:20.10.13~3-0~ubuntu-jammy $ sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin
通过运行hello-world镜像来验证Docker引擎是否正确安装:
sh$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world b8dfde127a29: Pull complete Digest: sha256:7d91b69e04a9029b99f3585aaaccae2baa80bcf318f4a5d2165a9898cd2dc0a1 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. ...
这个命令下载一个测试镜像并在容器中运行它。当容器运行时,它打印一条消息并退出。
提示
已安装并运行 Docker 引擎。docker 组已创建,但未添加任何用户。您需要使用 sudo
来运行 Docker 命令。
卸载 Docker Engine
卸载 Docker Engine、CLI 和 Containerd 包:
sh$ sudo apt purge docker-ce docker-ce-cli containerd.io
主机上的镜像、容器、卷或自定义配置文件不会自动删除。要删除所有镜像、容器和卷:
sh$ sudo rm -rf /var/lib/docker $ sudo rm -rf /var/lib/containerd
Docker 在 Linux 下安装后设置
以非 root 用户管理 Docker
Docker 守护进程绑定到 Unix 套接字而不是 TCP 端口。默认情况下,Unix 套接字属于 root
用户,其他用户只能使用 sudo
访问它。Docker 守护进程始终以 root
用户运行。
如果您不想在 docker 命令之前加上 sudo
,可以创建一个名为 docker
的 Unix 组并向其中添加用户。当 Docker 守护进程启动时,它会创建一个由 Docker 组的成员访问的 Unix 套接字。
创建 docker
组并添加当前用户:
创建
docker
组。sh$ sudo groupadd docker
添加当前用户到
docker
组。sh$ sudo usermod -aG docker $USER
激活对
docker
组的修改。sh$ newgrp docker
验证当前用户可以在不使用
sudo
的情况下运行 docker 命令。sh$ docker run hello-world
将 Docker 设置为开机自启动
要设置开机自动启动 Docker 和 Containerd,请使用下面的命令:
sh
$ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
要禁用此行为,请使用 disable
:
sh
$ sudo systemctl disable docker.service
$ sudo systemctl disable containerd.service